<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>symbol</title>
</head>

<body>
    <script>
        /*
        ES6引入了一种新的原始数据类型Symbol，表示独一无二的值。它是JavaScript语言的第七种数据类型，是一种类似于字符串的数据类型。
        Symbol特点
            1) Symbol的值是唯一的，用来解决命名冲突的问题
            2)Symbol值不能与其他数据进行运算
            3) Symbol定义的对象属性不能使用for..in循环遍历，但是可以使用Reflect.ownKeys来获取对象的所有键名
        */

        //创建symbol
        let s = Symbol();
        // console.log(s, typeof s);
        let s2 = Symbol('ABC');
        console.log(s2, typeof s2);
        let s3 = Symbol('ABC');
        console.log(s2 === 3);

        //Symbol.for 创建
        let s4 = Symbol.for('ABC')
        let s5 = Symbol.for('ABC')
        console.log(s4, typeof s4);
        console.log(s4 === s5);

        //不能与其它数据进行运算
        // let res = s + 100;
        // let res = s > 100;
        // let res = s + s;

        //USONB 
        // U undefined
        // S string Symbol
        // o object
        // n null number
        // b boolean

    </script>
</body>

</html>